Calibration free, motion tolerent eye-gaze direction detector with contextually aware computer interaction and communication methods

ABSTRACT

Eye tracking systems and methods include such exemplary features as a display device, at least one image capture device and a processing device. The display device displays a user interface including one or more interface elements to a user. The at least one image capture device detects a user&#39;s gaze location relative to the display device. The processing device electronically analyzes the location of user elements within the user interface relative to the user&#39;s gaze location and dynamically determine whether to initiate the display of a zoom window. The dynamic determination of whether to initiate display of the zoom window may further include analysis of the number, size and density of user elements within the user interface relative to the user&#39;s gaze location, the application type associated with the user interface or at the user&#39;s gaze location, and/or the structure of eye movements relative to the user interface.

PRIORITY CLAIM

This application claims the benefit of previously filed U.S. ProvisionalPatent Application entitled “CALIBRATION FREE, MOTION TOLERANT EYE-GAZEDIRECTION DETECTOR WITH CONTEXTUALLY AWARE COMPUTER INTERACTION ANDCOMMUNICATION METHODS,” assigned U.S. Ser. No. 61/168,124, filed Apr. 9,2009, and which is fully incorporated herein by reference for allpurposes.

FIELD OF THE INVENTION

The present invention generally pertains to electronic interfacetechnologies, and more particularly to systems and methods that employeye tracking as a user interface to an electronic device.

BACKGROUND OF THE INVENTION

When someone suffers a tragic accident or is inflicted with a terribledisease, the ability to effectively communicate or access a computer isfrequently lost, especially when the accident or disease causesparalysis or induces, in the opposite extreme, involuntary motion of thebody. In either scenario, eye movements are often the only aspect of aperson's body that the person can control. As such, users may seek toemploy alternative and augmentative Communications (AAC) technologies.Some forms of alternative access technologies include eye-trackingsystems, head pointing mice, voice activated systems, or scanningtechnology.

Some alternative access technologies are characterized by certainlimitations. For example, scanning technology may sometimes beinefficient because it is not a direct selection technology. Scanningtypically works by successively highlighting rows of buttons and thenhaving the user actuate a switch to choose the row for which he/shewishes to push a button. Each button is then highlighted and clickingthe switch again selects the button. Voice activated systems are onlygenerally available to people with disabilities who can speak. Headpointing mice only work for those that have good head control, soindividuals with paralysis or involuntary motion cannot use it.

In light of the above limitations, eye-tracking technology has emergedas an attractive option for users to interface with electronic devices,such as but not limited to computers, speech generation devices, andother electronic technologies. One example of an eye-tracking accessmethod is disclosed in U.S. Pat. No. 6,152,563 to Hutchinson et al. Suchpatent generally describes an eye-gaze direction detection system andmethod that can be used to help detect eye movement or determineeye-gaze direction (i.e., a user's point of regard).

The Hutchinson et al. '563 patent is a robust system, but may becharacterized by certain limitations. For example, the eye-trackingtechnology in the Hutchinson et al. '563 patent requires a fixed headposition and/or a user initiated calibration procedure. As such, userswith involuntary motion frequently cannot benefit from the technology.

In addition, the zooming technique disclosed in the Hutchinson et al.'563 patent requires zooming to be either on or off. This feature limitsthe adaptability of the zooming features and requires time and effort onthe part of a user who may want to toggle between the differentavailable zooming modes.

Still further, additional features may be desired to enhance theselection system afforded by the technology in the Hutchinson et al.'563 patent, including selection features associated with the user'scontext, type of feedback mechanism (e.g, pointer) showing where theuser is looking, the amount of zooming, size of the focus region, etc.

In light of the various design concerns in the field of eye gazetechnologies, a need continues to exist for refinements and improvementsto address the above concerns and others. While various implementationsof eye gaze technologies and associated features and steps have beendeveloped, no design has emerged that is known to generally encompassall of the desired characteristics hereafter presented in accordancewith aspects of the subject technology.

BRIEF SUMMARY OF THE INVENTION

In view of the recognized features encountered in the prior art andaddressed by the present subject matter, improved eye tracking systemsand methods have been developed. In various embodiments, eye trackingimprovements include one or more features related to zooming/selection,visual feedback display, text entry, word prediction, calibration, andimage capture.

In one exemplary embodiment of the present technology, an eye gazedetection system, includes a display device, at least one image capturedevice and a processing device. The display device is configured todisplay a user interface to a user, wherein the user interface includesone or more interface elements. The at least one image capture device isconfigured to detect a user's gaze location relative to the displaydevice. The processing device is configured to electronically analyzethe location of user elements within the user interface relative to theuser's gaze location and dynamically determine whether to initiate thedisplay of a zoom window.

Another exemplary embodiment of the present technology concerns a methodfor automatically initiating user interface magnification within anelectronic device. In accordance with such an exemplary method, thepresence of one or more interface elements are electronically detectingin a user interface relative a user's gaze point on the user interface.The density of interface elements around the user's gaze point iselectronically determined. The display of a zoom window (e.g., amagnified view of a portion of the user interface) is automaticallyinitiated if the electronically determined density of interface elementsexceeds a predetermined density threshold level.

In another exemplary embodiment of the present technology, an eye gazedetection system includes a display device, at least one image capturedevice and a processing device. The display device is configured todisplay a user interface to a user, wherein the interface comprises oneor more interface elements. The at least one image capture device is fordetecting a user's gaze location relative to the display device. Theprocessing device is configured to detect user interface elements withinthe user interface relative to the user's gaze location and dynamicallydetermine whether to initiate the display of one or more visual feedbackelements on the user interface at or near the user's gaze location,wherein such dynamic determination is made based on whether the user'sgaze location is at or within a predetermined distance of an interfaceelement.

Another exemplary embodiment of the disclosed technology concerns amethod for displaying and updating visual feedback elements in an eyetracking system. One step in such method involves electronicallydetecting a user's gaze location corresponding to where a user islooking relative to a user interface. Another step involveselectronically determining whether any reactable interface elements arepointed at or within a predetermined distance from the user's gazelocation. A still further step involves electronically displaying one ormore visual feedback elements on the user interface at or near theuser's gaze location if one or more reactable interface elements arefound at or within a predetermined distance from the user's gazelocation.

In yet another exemplary embodiment of the disclosed technology, anelectronic device with text entry features includes a display device anda processing device. The display device is configured to electronicallydisplay a user interface to a user. The processing device is configuredto analyze aspects of the user interface to electronically determinewhen text entry needs to occur within a control element in the userinterface. The processing device is further configured upondetermination that text entry needs to occur within the user interfaceto display a selectable interface element to a user that upon selectioninvokes an on-screen keyboard with text entry area. The processingdevice is further configured to relay input received from a user via theon-screen keyboard to the control element in the user interfacerequiring text entry.

Yet another exemplary embodiment of the disclosed technology concerns amethod of providing input features for a computing system. A first stepinvolves electronically determining when text entry needs to occurwithin a control element in a user interface. Another step involveselectronically presenting a selectable interface element to a user thatupon selection invokes an on-screen keyboard having a text entry area. Astill further step involves receiving electronic input from a user viaeye-controlled selection of buttons provided via the on-screen keyboard.A final step concerns electronically relaying the input received from auser via the on-screen keyboard to the control element in the userinterface requiring text entry.

In a further embodiment of the disclosed technology, an electronicdevice with adaptable interface features includes a display device and aprocessing device. The display device is configured to electronicallydisplay a user interface to a user. The user interface comprises amessage composition window and a plurality of selectable buttons havingrespective content items. The processing device is configured todetermine message content provided in said message composition windowand to change the content items and associated commands for selectedones of the selectable buttons based on the message content provided insaid message composition window.

Another exemplary embodiment of the disclosed technology concerns amethod of implementing word prediction features for a graphical userinterface. In such exemplary method, a user interface is electronicallydisplayed to a user. The user interface comprises a message compositionwindow and a plurality of selectable buttons having respective contentitems. A detection is made regarding the message content provided in themessage composition window. Finally, the content items and correspondingcommands associated with selected ones of the selectable buttons arealtered based on the message content provided within the messagecomposition window.

Yet another exemplary embodiment of the present technology concerns amethod of providing automatic motion-tolerant calibration for an eyetracking device. Such an auto-calibration method may involve obtainingan initial set of eye images and at least one subsequent set of eyeimages. A scaling factor is determined for each subsequent set ofimages. The scaling factor is defined by spatial differences between eyefeatures in each subsequent set of images and the initial set of eyeimages or another previously obtained set of eye images. Glint and pupilinformation is obtained from selected sets of images. A final stepinvolves applying the glint and pupil information from selected sets ofimages and the appropriate scaling factor for the selected sets ofimages to a calibration model to determine a sequence of equations formapping future gaze locations.

Another exemplary embodiment of the present technology relates to an eyetracking device. The eye tracking device may include at least first andsecond image capture devices configured to obtain sets of images of auser's eyes. The eye tracking device may also include at least one lightsource configured to selectively illuminate the eyes of a user of theeye tracking device. The eye tracking device may still further include aprocessing device configured to coordinate the timing of illuminationprovided by the at least one light source and images captured by the atleast first and second image capture devices such that respective setsof images are obtained. Each set of images comprises at least one imagefrom the first image capture device and at least one image from thesecond image capture device. The processing device is also configured toanalyze selected images obtained from the at least first and secondimage capture devices to determine a scaling factor representing thespatial changes of a user's eye position in space between a current eyeposition and a previous eye position.

Another exemplary embodiment of the presently disclosed technologyconcerns a method of optimizing the image capture mode for an eyetracking device. In accordance with such a method, at least onebright-eye image and at least one dark-eye image of one or more eyes ofa user are obtained. One or more data parameters associated with the atleast one bright-eye image and the at least one dark-eye image are thengathered to determine an image score associated with the at least onebright-eye image and an image score associated with the at least onedark-eye image. A best mode of image capture is designated based on thedetermined image score associated with the at least one bright-eye imageand the at least one dark-eye image. The eye tracking device is thenconfigured to obtain future images in the designated best mode of imagecapture.

A still further exemplary embodiment of the present technology relatesto an eye tracking device including at least first and second imagecapture devices, at least one light source, and a processing device. Theat least first and second image capture devices are configured to obtainsets of images of a user's eyes. The at least one light source isconfigured to selectively illuminate the eyes of a user of the eyetracking device. The processing device is configured to coordinate thetiming of illumination provided by the at least one light source andimages captured by the at least first and second image capture devicessuch that at least one bright-eye image is obtained and at least onedark-eye image is obtained. The processing device is further configuredto analyze the at least one bright-eye image and the at least onedark-eye image to determine respective image scores associated with theat least one bright-eye image and the at least one dark-eye image and todesignate a best mode of image capture for future images based on thedetermined respective image scores.

Additional aspects and advantages of the present subject matter are setforth in, or will be apparent to, those of ordinary skill in the artfrom the detailed description herein or from practice of the invention.Also, it should be further appreciated that modifications and variationsto the specifically illustrated, referred and discussed features andelements hereof may be practiced in various embodiments and uses of thepresent subject matter without departing from the spirit and scope ofthe subject matter. Variations may include, but are not limited to,substitution of equivalent means, features, or steps for thoseillustrated, referenced, or discussed, and the functional, operational,or positional reversal of various parts, features, steps, or the like.

Still further, it is to be understood that different embodiments, aswell as different presently preferred embodiments, of the presentsubject matter may include various combinations or configurations ofpresently disclosed features, steps, or elements, or their equivalents(including combinations of features, parts, or steps or configurationsthereof not expressly shown in the figures or stated in the detaileddescription of such figures). Additional embodiments of the presentsubject matter, not necessarily expressed in the summarized section, mayinclude and incorporate various combinations of aspects of features,components, or steps referenced in the summarized objects above, and/orother features, components, or steps as otherwise discussed in thisapplication. Those of ordinary skill in the art will better appreciatethe features and aspects of such embodiments, and others, upon review ofthe remainder of the specification.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute apart of this specification, illustrate at least one presently preferredembodiment of the invention as well as some alternative embodiments.These drawings, together with the description, serve to explain theprinciples of the invention but by no means are intended to beexhaustive of all of the possible manifestations of the invention.

FIG. 1 provides a schematic diagram of exemplary hardware components foruse within an eye gaze detector in accordance with an aspect of thepresent invention;

FIG. 2 provides a first screenshot depicting aspects of an exemplaryzooming technology, particularly showing user fixation on a screen;

FIG. 3 provides a flow chart of steps in an exemplary method forautomatically initiating user interface magnification provided within azoom feature for an electronic device;

FIG. 4 provides a screenshot view of an exemplary embodiment of azooming feature whereby a zoom window is automatically presented to auser in response to analysis of the user interface;

FIG. 5 provides a screenshot view of an exemplary embodiment ofauto-regioning a display element (e.g., the start button) in accordancewith an aspect of the presently disclosed technology;

FIG. 6 provides a flow chart of steps in an exemplary method fordisplaying and updating visual feedback elements in an eye trackingdevice;

FIG. 7 provides a flow chart of steps in an exemplary method ofproviding text entry input features for use in an eye controlledinterface;

FIG. 8 provides a screenshot view of an exemplary embodiment of afeature (e.g., text entry button) for implementing an on-screen keyboardto assist with user entry of text via eye controlled input;

FIG. 9 depicts an exemplary embodiment of a keyboard user interface thatmay be provided to a user, for example, in response to selection of thetext entry button such as illustrated in FIG. 8;

FIG. 10 provides a screenshot view of the exemplary embodiment of FIG. 8after text was entered by a user with the keyboard user interface ofFIG. 9;

FIG. 11 depicts an exemplary embodiment of a user interface havingcontextually aware button states based on the input provided by a user;

FIG. 12 depicts an exemplary embodiment of a user interface having asubset of buttons (e.g., verbs) that are provided in a first exemplarystate (e.g., infinitive form);

FIG. 13 depicts an exemplary embodiment of a user interface having asubset of buttons (e.g., verbs) that are provided in a second exemplarystate (e.g., present participle form) based on input provided by a user(e.g., input in the form of the auxiliary verb “am”);

FIG. 14 provides a flow chart of steps in an exemplary method ofimplementing word prediction features for a graphical user interface;

FIG. 15 depicts a prior art representation of a user's eye characterizedby a bright-eye effect during illumination;

FIG. 16 depicts a prior art screenshot of calibration points requiredfor a user to calibrate a known eye tracking device;

FIG. 17 provides a flow chart of steps in an exemplary method ofproviding automatic motion-tolerant calibration for an eye trackingdevice in accordance with exemplary aspects of the presently disclosedtechnology;

FIG. 18 provides a flow chart of steps in an exemplary method ofoptimizing the image capture mode for an eye tracking device;

FIG. 19 depicts an exemplary schematic representation of a capturedimage of a user's eye having a bright-eye effect in accordance withoptimizing an image capture mode; and

FIG. 20 depicts an exemplary schematic representation of a capturedimage of a user's eye having a dark-eye effect in accordance withoptimizing an image capture mode.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

Reference now will be made in detail to the presently preferredembodiments of the invention, one or more examples of which areillustrated in the accompanying drawings. Each example is provided byway of explanation of the invention, which is not restricted to thespecifics of the examples. In fact, it will be apparent to those skilledin the art that various modifications and variations can be made in thepresent invention without departing from the scope or spirit of theinvention. For instance, features illustrated or described as part ofone embodiment, can be used on another embodiment to yield a stillfurther embodiment. Thus, it is intended that the present inventioncover such modifications and variations as come within the scope of theappended claims and their equivalents. The same numerals are assigned tothe same components throughout the drawings and description,

Hardware:

The various features and aspects of the presently disclosed technologygenerally relate to improvements in the field of eye gaze technology. Assuch, it should be appreciated that such features and aspects can beemployed in any number of systems and methods that utilize some form ofeye gaze detection technology, including but not limited to systemsand/or methods that detect eye movement or that determine eye gazedirection (i.e., eye tracking or eye tracker systems).

Known examples of eye tracking systems and methods are known, many ofwhich can be employed in accordance with one or more aspects of thepresently disclosed technology. Examples of eye tracker devices aredisclosed in U.S. Pat. Nos. 3,712,716 to Cornsweet et al.; 4,950,069 toHutchinson; 5,589,619 to Smyth; 5,818,954 to Tomono et al.; 5,861,940 toRobinson et al.; 6,079,828 to Bullwinkel; and 6,152,563 to Hutchinson etal.; each of which is hereby incorporated herein by this reference forall purposes. Examples of suitable eye tracker devices also aredisclosed in U.S. Patent Application Publication Nos.: 2006/0238707 toElvesjo et al.; 2007/0164990 to Bjorklund et al.; and 2008/0284980 toSkogo et al.; each of which is hereby incorporated herein by thisreference for all purposes.

Eye tracking applications may be especially useful for interfacing withcomputer based systems and other electronic devices, such as but notlimited to desktop computers, laptop computers, tablet computers,cellular phones, mobile devices, media players, personal digitalassistant (PDA) devices, speech generation devices or other AAC devicesand the like. Such devices or others incorporating the disclosed eyegaze features could also prove beneficial in particular areas, includingpsychological research, marketing research, gaming, or medicaldiagnostics. Such features could also be used to measure where peoplelook in cockpits, while driving, while performing surgery, in arcadegames, on television screens, movie screens, or any other environmentwhere measuring a person's direction of gaze can provide additionalvalue.

An electronic device employing various features and aspects of thepresently disclosed technology may generally include one or morehardware components, an exemplary combination of which is depicted inFIG. 1. In general, an eye gaze detector may include such basic hardwareelements as one or more image capture devices, one or more light sourcesand some computing and/or processing device that function together todetect and analyze light reflected from the user's eyes. In someembodiments, the image capture, light source and computing devices areprovided as a stand-alone eye tracking assembly. In other embodiments, adisplay device is also provided such that a user's eye gaze can betracked relative to the user's point of regard on the display surface.In such instances, the image capture and light source devices may beintegrated with the display device in a modular assembly or may beprovided as separate interfaced components. Still further components maybe integrated or attached, such as various input, output andcommunication devices.

Referring more particularly to the embodiment shown in FIG. 1, anexemplary eye gaze detection system (i.e., eye tracker) 100 includes afirst image capture device 102, a first light source 104 and a centralcomputing device 106. In some embodiments, the eye gaze detection systemalso includes a second image capture device 103 and second light source105 as well as a display device 108. As will be appreciated from laterdescription herein, the provision of two image capture devices mayfacilitate such features as automated calibration for a user of an eyetracking system. In still further embodiments, a plurality of lightsources and/or image capture devices (more than one or two) may also beemployed. First and/or second image capture devices 102, 103 may includeany number of devices suitable for capturing an image of a user's eyes.Nonlimiting examples of suitable image capture devices include cameras,video cameras, sensors (e.g., photodiodes, photodetectors, CMOS sensorsand/or CCD sensors) or other devices.

Respective first and/or second light sources 104, 105 may include anynumber of light sources suitable for illuminating a user's eye(s) sothat the image capture devices 102, 103 can measure certain identifiablefeatures associated with the illuminated eyes. In some arrangements, alight source is positioned as close as possible to the center of acorresponding image capture device. Such arrangement may be better forcapturing a bright pupil or bright-eye effect upon illumination of auser's eye. In other arrangements, a light source is positioned distantfrom the center of a corresponding image capture device, which may beuseful for capturing a dark pupil or dark-eye effect.

In one example, light sources 104 and/or 105 may respectively includeone or more light emitting diodes (LEDs). The LEDs may be arrangedsingularly or in some sort of arrayed combination, such as in astaggered, linear, circular or other patterned combination of lights.The LEDs may emit infrared or near infrared light having a wavelength ofbetween about 750-1500 nanometers. In one particular example, the LEDsemit light having a wavelength of about 880 nanometers, which is theshortest wavelength deemed suitable in one exemplary embodiment for usewithout distracting the user (the shorter the wavelength, the moresensitive the sensor, i.e., video camera, of the eye tracker). However,LEDs operating at wavelengths other than about 880 nanometers easily canbe substituted and may be desirable for certain users and/or certainenvironments.

Display device 108 may correspond to one or more substrates outfittedfor providing images to a user. In many cases, the user's point ofregard will be determined by analyzing where the user is lookingrelative to the surface of display device 108. Display device 108 mayemploy one or more of liquid crystal display (LCD) technology, lightemitting polymer display (LPD) technology, light emitting diode (LED),organic light emitting diode (OLED) and/or transparent organic lightemitting diode (TOLED) or some other display technology. In oneexemplary embodiment, a display device includes an integrated touchscreen to provide a touch-sensitive display that implements one or moreof the above-referenced display technologies (e.g., LCD, LPD, LED, OLED,TOLED, etc.) or others. The touch sensitive display can be sensitive tohaptic and/or tactile contact with a user (e.g., a capacitive touchscreen, resistive touch screen, pressure-sensitive touch screen, etc.).

Processing functionality for the eye gaze detector may be provided byone or more processors, for example processor(s) 110 that are providedas part of central computing device 106. The computing device 106 may beprovided as an integrated part of the eye detector 100 or as a separateperipheral component connected to other eye tracking components via anassociated data port. In general, the computing device 106 receivesimages from the first and/or second image capture devices 102, 103 andapplies various image processing algorithms thereto to detect and tracka user's eyes. Usually, a mapping function—usually a second orderpolynomial function—is employed to map gaze measurements from thetwo-dimensional image space to the two-dimensional coordinate space ofthe display device 108.

In one particular example, computing device 106 can be provided tofunction as the central controller within the eye detector 100 and maygenerally include such components as at least one memory/media elementor database for storing data and software instructions as well as atleast one processor. As shown in FIG. 1, the one or more processor(s)110 and associated memory/media devices 112 and 114 are configured toperform a variety of computer-implemented functions (i.e.,software-based data services). The one or more processor(s) 110 withincomputing device 106 may be configured for operation with anypredetermined operating system(s), such as but not limited to MICROSOFTWINDOWS (NT, XP, VISTA, 7, ETC.), and thus is an open system that iscapable of running any application that can be run on Windows or otherapplicable OS. Other possible operating systems include BSD UNIX, Darwin(Mac OS X including specific implementations such as but not limited to“Cheetah,” “Leopard,” and “Snow Leopard” versions), Linux and SunOS(Solaris/OpenSolaris).

At least one memory/media device (e.g., device 112 in FIG. 1) isdedicated to storing software and/or firmware in the form ofcomputer-readable and executable instructions that will be implementedby the one or more processor(s) 110. The same or other coupledmemory/media devices (e.g., device 114 in FIG. 1) are used to storeinput and/or output data which will also be accessible by theprocessor(s) 110 and which will be acted on per the softwareinstructions stored in memory/media device 112. For example, in oneparticular embodiment, memory device 114 may store input data such asimages and related information received from first and/or second imagecapture devices 102, 103 that is then subjected to various imageprocessing routines stored as executable instructions within memorydevice 114. Additional input data stored in memory device 114 mayinclude data received from one or more integrated or peripheral inputdevices 116 associated with electronic device 100.

Output data may also be stored in memory device 114 or in another memorylocation. Output data may include, for example, outputs from variousimage processing and eye tracking algorithms (e.g., display signals,audio signals, communication signals, control signals and the like) fortemporary or permanent storage in memory, e.g., in memory/media device114. Such output data may be later communicated to integrated and/orperipheral output devices, such as a monitor or other display device, oras control signals to still further components.

Computing device 106 may thus be adapted to operate as a special-purposemachine by having one or more processors 110 execute the softwareinstructions rendered in a computer-readable form stored in memory/mediaelement 110. When software is used, any suitable programming, scripting,or other type of language or combinations of languages may be used toimplement the teachings contained herein. In other embodiments, themethods disclosed herein may alternatively be implemented by hard-wiredlogic or other circuitry, including, but not limited toapplication-specific integrated circuits.

The various memory/media devices of FIG. 1 may be provided as a singleportion or multiple portions of one or more varieties ofcomputer-readable media, such as but not limited to any combination ofvolatile memory (e.g., random access memory (RAM, such as DRAM, SRAM,etc.)) and nonvolatile memory (e.g., ROM, flash, hard drives, magnetictapes, CD-ROM, DVD-ROM, etc.) or any other memory devices includingdiskettes, drives, other magnetic-based storage media, optical storagemedia and others. In some embodiments, at least one memory devicecorresponds to an electromechanical hard drive and/or or a solid statedrive (e.g., a flash drive) that easily withstands potential shockdamage. Although FIG. 1 shows two dedicated memory devices 112, 114, thecontent stored within such devices may actually be stored in a singlememory device, multiple memory devices or multiple portions of memory.Any such possible variations and other variations of data storage willbe appreciated by one of ordinary skill in the art.

Referring still to FIG. 1, various peripheral devices also may becoupled to or integrated with central computing device 106 to assistwith providing additional optional functionality for an eye tracker 100.In one embodiment, such additional peripheral devices may include one ormore of an input device 116 (e.g., keyboard, joystick, switch, touchscreen, microphone, eye tracker, camera, or other device), speaker 118,communication module 120, and a peripheral output device 122 (e.g.,monitor, printer, microphone, camera or other device).

The inclusion of speaker(s) 118 may be especially useful when eyetracker 100 is provided as part of a speech generation device or othercomputer-based device so that text to speech functionality providesaudio output to a user. Speakers can be used to speak messages composedin a message window as well as to provide audio output for interfacedtelephone calls, speaking e-mails, reading e-books, and other functions.As such, the speakers 118 and related components enable the electronicdevice 100 to function as a speech generation device, or a particularspecial-purpose electronic device that permits a user to communicatewith others by producing digitized or synthesized speech based onconfigured messages. Such messages may be preconfigured and/or selectedand/or composed by a user within a message window provided as part ofthe speech generation device user interface.

One or more communication modules 120 also may be provided to facilitateinterfaced communication between the electronic device 100 and otherdevices. For example, exemplary communication modules may correspond toantennas, Infrared (IR) transceivers, cellular phones, RF devices,wireless network adapters, or other elements. In some embodiments,communication module 120 may be provided to enable access to a network,such as but not limited to a dial-in network, a local area network(LAN), wide area network (WAN), public switched telephone network(PSTN), the Internet, intranet or ethernet type networks, wirelessnetworks including but not limited to BLUETOOTH, WI-FI (802.11b/g), MiFiand ZIGBEE wireless communication protocols, or others. The variousfunctions provided by a communication module 120 will enable the device100 to ultimately communicate information to others as spoken output,text message, phone call, e-mail or other outgoing communication.

Referring still to FIG. 1, it should be appreciated that a computingdevice or other device (e.g., mobile device, computer, speech generationdevice, or other devices as previously mentioned) that can be controlledby the eye tracking system components described herein may be of a typethat displays visual objects on display screen 108 that the user canconsider whether to select. Selection software executed by computingdevice 106 may include an algorithm in conjunction with one or moreselection methods to select an object on the display screen 108 bytaking some action with the user's eyes either alone or in combinationwith other selection methods.

For example, optional selection methods that can be activated using theeye tracking features of device 100 to interact with the display screen108 include blink, dwell, blink/dwell, blink/switch and external switch.Using the blink selection method, a selection will be performed when theuser gazes at an object shown on the display device 108 and then blinksfor a specific length of time. Additionally, the system also can be setto interpret as a “blink,” a set duration of time during which anassociated camera cannot see the user's eye. The dwell method ofselection is implemented when the user's gaze is stopped on an object onthe display device 108 for a specified length of time. The blink/dwellselection combines the blink and dwell selection so that the object ondisplay device 108 can be selected either when the user's gaze isfocused on the object for a specified length of time or if before thatlength of time elapses, the user blinks an eye. In the external switchselection method, an object is selected when the user gazes on theobject for a particular length of time and then actuates an externalswitch. The blink/switch selection combines the blink and externalswitch selection so that the object shown on the display device 108 canbe selected when the user's gaze blinks on the object and the user thenactuates an external switch. In each of these selection methods, theuser can make direct selections instead of waiting for a scan thathighlights the individual objects in the user interface shown in displaydevice 108.

Various features and aspects of the presently disclosed technology thatmay be implemented in accordance with an eye tracking system aspresented in FIG. 1, with other eye tracking systems and/or with methodsassociated with eye tracking are now presented. Such features includethose related to the following topics: (1) zooming/selection technology;(2) visual feedback display technology; (3) text entry technology; (4)word prediction technology; (5) calibration technology; and (6) imagecapture technology.

Zoooming and Selection:

U.S. Pat. No. 6,152,563, Eye gaze Direction Detector, by Hutchinson,Lankford, and Shannon, ('563 Hutchinson et al.) describes aneye-tracking system that allows individuals with disabilities to accessa computer. This reference is hereby incorporated herein by referencefor all purposes. Such patent employs zooming technology to provide morereliable selection on a computer screen. In essence, eye-trackingsystems are fundamentally inaccurate; it is only physiologicallypossible to detect where someone is looking to within a few millimeterson the screen. At high screen resolutions and with tiny controls, thiscan make direct selection of a button difficult. To compensate for this,the '563 Hutchinson et al. patent describes a method by which a portionof the screen where the user is looking is first magnified. Then, whenthe user looks in the magnified area, the user may reliably select whatarea the user wishes to click.

FIG. 2 illustrates an example of such prior art zooming feature. FIG. 2shows how a zoom window can be initiated when a user fixates or focuseshis gaze at a particular point or area on a display screen. Gazefixation at a point on a screen for some predetermined amount of dwelltime can cause a zoom window to pop up near the center of the screen.The region around which the user was fixating appears magnified in thiszoom window as shown in FIG. 2. At the bottom of the window is aneye-gaze controlled button that closes the window if the user fixates onthe button for a predetermined length of time. The user then fixates hisgaze within the zoom window on an item or action which the user wouldlike to select or implement. This zooming feature greatly increases theusability of a computer for individuals with disabilities by providing areliable means for activating a GUI control and accomplishing varioustasks within a GUI environment using only eye control.

The zooming feature depicted in FIG. 2 and described more particularlyin the Hutchinson et al. '563 patent may also utilize a display elementfor visually indicating to a user of the system where and how the useris fixating his gaze. For example, when the user fixates for apredetermined amount of time on a computer display, a red rectangle mayappear, centered on the point of fixation. The rectangle serves as avisual cue to the user that if the user keeps fixating at that point, hewill be asked to perform a mouse control action or other action at thatpoint. This area represented by the red rectangle may be referred to asthe “focus region.” Users keep their eyes focused within the focusregion to continue timing required to implement an eye-gaze action.Users move their eyes or pointing method outside of the focus region toreset the timing.

A first limitation of the zooming technique disclosed in the '563Hutchinson et al. patent is that zooming is either always on or alwaysoff. This system either selects or zooms depending on the softwaresetting. If zooming is turned off and the user looks at an area of thescreen densely populated with controls, false selections wouldinevitably occur. A user can turn zooming on or off through thesoftware, but this is frequently time consuming. This would sometimesmean that a user would leave the zooming feature turned on, even if theuser did not need to use it because the targets they were observing wereso large. This would lead to the user always having a two stageselection process. Zooming always occurred first, followed by selectionin the zoom window. In light of this limitation, a need remains forcontextually aware zooming technology that dynamically knows whenzooming is needed and how much zooming is needed so that the system canimplement automatic and adaptable zooming features.

A second limitation of the zooming technique disclosed in the '563Hutchinson et al. patent concerns the focus region used to define userdwell times. The focus region is typically a set pixel size on thescreen, regardless of the size of the target to be selected. As such, aneed remains for dynamically changing the size of the focus region andhow a pointer is updated to better accommodate a user's needs and thusprovide faster and more reliable selection.

In light of the above limitations and other considerations, thepresently disclosed technology provides features for improving direct orindirect selection of items. Examples given are in the context ofcontrolling a computer application. This disclosed eye-tracking systemcan serve as an input to the contextually aware selection systemdescribed below. Such a selection system is important to having aneye-tracking device serve as an effective tool for communication andcomputer access.

In accordance with such improved selection features, a new method forautomatically initiating user interface magnification (e.g, bydynamically determining when to initiate a zoom window) is provided.Referring now to FIG. 3, a first exemplary step 300 may involvedisplaying a user interface to a user (e.g., via a display device suchas a monitor, television or other display screen) and detecting a user'sgaze location relative to the user interface, for example, by using thepreviously described eye tracker hardware and software components. Itshould be appreciated that the user's gaze location is not somethingthat is static or determined only once, but that is constantly updatedor “tracked” in real-time based on the potentially continuous movementassociated with a user's gaze. In some embodiments, a pointer or othergraphical icon will be visually displayed on the user interface toidentify the user's gaze location. The content of the user interface andthe user's gaze location are then analyzed relative to one another inorder to determine whether or not to implement user interfacemagnification provided within a zoom window.

Referring still to FIG. 3, a second exemplary step 302 may involveelectronically detecting the presence of one or more interface elementsin the user interface relative to the user's gaze location detected instep 300. Interface elements provided within a user interface may bedefined to include such items as buttons, icons, symbols, hyperlinks,menus, pop-ups, data input locations, or other graphical or videoelements. In some embodiments of the disclosed technology, the interfaceelements of concern are only those elements that are selectable or“reactable.” This means that the system is concerned with detecting thepresence of items that are selectable (buttons, hyperlinks, etc.) orreactable to some sort of user input (e.g., reactable to a mouseleft-click action) but not of background images or simple text that auser may be scrolling through for reading purposes as opposed tointeractive purposes. In this way, zooming is only initiated if it willhelp a user select a specific reactable interface element, not if a useris just reading through or otherwise viewing material on a screen.

In one embodiment, reactable interface elements and the methods by whichthey react are automatically determined from the operating system. Theoperating system may present data that an electronic device accesses bycalling API commands and thereby interpreting the resulting data to fitits needs (this includes using the UIAutomation or GetClassName API fromWindows). These API calls may vary based on the application beinginteracted with, such as the need to use the Document Object Model forInternet Explorer. The reactable elements and their methods for reactionmay also be determined by analyzing the images within a user interfaceitself. For example, the user interface can be searched to look forenclosed shapes, such as squares or circles in the live bitmap image ofthe screen by employing pattern recognition techniques. One example of apattern recognition technique is a generalization of the techniques usedto find the eyes as described in the '563 Hutchinson et al. patent.Incorporation of pattern recognition techniques may be especially usefulwhen interacting with older software or software from smaller softwarecompanies that do not follow operating system conventions.

In some embodiments of the presently disclosed technology, it ispossible to employ more features than merely a detection of an interfaceelement in some proximate location relative to the user's gaze locationto help dynamically determine when to initiate the display of a zoomwindow. For example, in some embodiments, an optional step 304 involvesdetecting additional information such as the size, number and/or densityof user elements relative to a user's gaze location (e.g., in somepredetermined area around or near the user's gaze location). In thisway, if a large number of reactable elements are determined to surrounda user's gaze location, zooming can be automatically implemented to helpa user see and select from among the many interface elements. If one ormore interface elements surrounding a user's gaze location are smallerthan some predetermined size level thus presenting potential fixationdifficulty for a user, zooming can be automatically implemented to helpa user see and select the interface elements by using a magnified view.If the density of interface elements (e.g., the number of interfaceelements detected within a given screen size area—defined by pixels,inches, cm, etc. in one or more dimensions) surrounding a user's gazelocation is higher than some predetermined level, then zooming can beimplemented. In still further examples, the type of application withinwhich the user interface is provided (e.g., a word processor, webbrowser, gaming environment, etc.) or that is beneath the user's gazelocation (and corresponding pointing location) can be used to assistwith the dynamic evaluation process to determine whether or not zoomingshould be implemented.

The predetermined attributes and corresponding levels which willinitiate display of a zoom window may be programmed as default valueswithin the system. Additionally or alternatively, it is possible for auser to provide customizable inputs to an eye tracking system thatdefine specific predetermined attributes and corresponding levels forthe above characteristics and others under which zooming should beinitiated. After detection of such characteristics in steps 302 and/or304 (e.g., after determining whether location, size, number and/ordensity of interface elements relative to the user's gaze locationsatisfies certain predetermined conditions), step 306 involveselectronically initiating the display of a zoom window (i.e., amagnified view of a portion of the user interface).

In any version, the zoom window initiated in step 306 may appear eitherat the center of the screen or directly over the area the person ispointing at. Note that the zoomed window may not be a static snapshot ofthe content underneath where the user is pointing. The zoomed window maycontinuously update what it shows based on what the application it iszooming into is doing (the application may be updating its display basedon drawing animations, processing its own data, etc.), and the zoomedwindow may not look like a window at all. It may just look as if thescreen is just enlarging.

The above characteristics and others may be evaluated to determine notonly whether to implement zooming, but also what level of magnificationto implement within a zoom window. As such, an additional step 308 mayinvolve determining the level of magnification for the zoom window basedon one or more of the detected parameters such as location, size, numberand/or density of interface elements relative to the user's gazelocation. For example, if the interface elements around a user's gazelocation are relatively small in size or have a relatively high densitylevel, a higher level of magnification may be implemented. In someembodiments, multiple iterations of zooming may be needed to achieve adesired level of magnification to accommodate high density levels orother determined characteristics associated with a user interface.Again, the desired level(s) of magnification may be programmed asdefault values within the system or may be customizable based on userinputs.

Characteristics associated with the user's gaze time or with otherpredetermined user actions may be evaluated to determine the timing ofwhen to display the zoom window. For example, the initiation of the zoomwindow if zooming is enabled per the above dynamic analysis may be basedat least in part on the length of time a user's gaze location remainsanywhere within a predetermined area associated with the user interface.In one example, a determination is made as to how long a user's gazelocation remains within a predetermined graphical feedback area such asa focus region that is displayed around the user's gaze location.

In some embodiments of the present technology, the determination ofwhether to automatically initiate a zoom window may additionally oralternatively depend on analysis of the structure of eye movementsdetermined by detecting the user's gaze location. For example, in aneye-tracker, if the eye-tracking movements follow the movements definedfor reading (i.e. for English speakers, left to right movements movingprogressively downward), then the system may not want to initiate thezoom window even if the user is reading hyperlinks or other selectableitems. As such, determining a user's task based on eye movementstructure or other inputs and dynamically determining whether toinitiate a zoom window may be another feature of the presently disclosedtechnology.

Referring again to FIG. 3, once a zoom window is initiated in step 306,a user may then point in the zoomed window at the object he wishes toclick on. For example, referring to FIG. 4, an exemplary user interface400 is shown after the disclosed auto-zooming technology initiates thedisplay of a zoom window 402 to assist a user trying to click on the “X”button to close a window. The “X” button is relatively small with othercontrols around it (e.g., minimize and maximize buttons), and so thezoom window may appear to allow more reliable selection of thisparticular button instead of other adjacent buttons. After a user looksat a desired interface element within a zoom window, an electronicreaction associated with the given interface element may be implemented.For example, when a user looks at the magnified “X” button within thezoom window 402 of FIG. 4, an electronic reaction corresponding toclosing the window may be implemented. In some embodiments of thepresently disclosed technology, the implementation of the electronicaction occurs not by a user looking at the given interface element, butby some other predetermined user action or combination of actions, suchas but not limited to one or more of blinking, fixating user gaze for apredetermined dwell time, pressing a button or switch, speaking acommand and/or other designated user action.

Additional features associated with the subject zooming and selectiontechnology are further directed to characteristics of a focus region. Inone example, a graphical feedback element defining the focus region(e.g., an outlined rectangle or other shape, highlighted region, orother visual identifier) and/or any additional displayed visual feedbackis configured to substantially match the area (including size and/orshape) defining one or more interface elements within either a userinterface or magnified user interface (i.e. zoom window). In someembodiments, as a user views a standard user interface, some or all ofthe objects that will appear in a magnified representation of such userinterface (i.e., the zoom window) are highlighted or otherwiseidentified using a visual feedback element prior to zooming. Forexample, any selectable or reactable interface elements in a regionaround where the user is looking may be highlighted so that a user canknow prior to whether or not a zoom window is initiated whether or not apotential object of interest would be inside of that zoom window. Thisfeature could reduce or avoid potential frustrations or inefficienciesfor a user and would be especially useful in a situation where zoomingwill occur due to high density of elements.

Exemplary aspects of a focus region feature are shown in FIG. 5 where afocus region 500 provided as a colored rectangle is formed to match thesize of a reactable interface element corresponding to the toolbarbutton 502 in a software application (namely the Start button in theMICROSOFT® WINDOWS® interface). By matching the focus region to aninterface element, and particularly to an interface element that is ofselectable interest to a user, the user is provided with a better visualindication of what he/she is looking at. In addition, such arrangementmay decrease the possibility that a user's gaze will fall off of anobject that the user is trying to select. It should be furtherappreciated that these features related to the focus region may beapplied not only to an initial user interface but also to zoomed objectswithin one or more iterations of a zoom window. In fact, variouscharacteristics of the zoom window itself may be determined bycharacteristics of the objects within the focus region orcharacteristics of the focus region itself (size, location, density orother characteristics as previously mentioned).

With further reference to the focus region, some embodiments of thepresently disclosed technology are configured to implement the displayof a visual feedback element at a designated location within the focusregion while a user's detected gaze location remains anywhere within thefocus region. For example, display and updating of the pointing deviceor other graphical feedback element used within the eye-tracker to showwhere a user is looking may be disabled while timing is occurring (i.e.,while a user's dwell time within the focus region is accumulated toreach a selection point). This reduces distractions to the user as theuser tries to complete the zooming process. Placing the pointer of thepointing device at the center of the focus region while timing occurscan also alleviate the inaccuracies in the pointing device.

With further reference to the implementation of visual feedback elementsto assist a user's interaction with a display, it should be appreciatedthat a variety of different types of visual elements may be used. Forexample, the visual feedback element defining the focus region (e.g.,outlined box or highlighted region) or the additional feedback elementoptionally shown within the focus region (e.g., pointer-type device) maydiffer based upon the action to be initiated. Different feedbackelements (or different colors, sizes or other features associated withthe feedback elements) may be employed for different types of actionssuch as, for example, a left-click, right-click, zoom, and the like.

With further reference to exemplary aspects of the present technology,there are many ways in which system reactions may be implemented tointeract with zoomed objects within an interface. For example, themethod by which an object selected in a zoomed or unzoomed view of auser interface reacts can occur automatically depending on whatselection method is chosen (e.g., blink, dwell, blink/dwell,blink/switch, external switch, voice activation, etc.) Once a selectionmode is captured, a desired action may be implemented, such as a leftclick to the desired object or a direct interaction with an objectthrough API calls, such as sending a specific windows message to drop acombo list in Windows.

Interface menus and customizable features may also be provided allowinga user to customize additional selection settings. For example, onesetting may enable a user to override the default object reaction to besome other task the user wishes to perform, such as right clicking. Withanother set of settings, the person may just keep pointing in a highdensity area in the vicinity of the object they wish to invoke/click,and the zoomed view keeps becoming progressively more zoomed until theobject fills the selection/zoom window or reaches an object density inwhich the system feels it can reliably make a selection based on theuser's center of focus, then it is invoked/clicked. This cascadingeffect allows the system to deal effectively and quickly with highdensity areas.

Visual Feedback Display:

Another feature of the presently disclosed technology concerns a systemand method for displaying and updating visual feedback elements for aneye tracking device. In particular embodiments, a visual feedbackelement, such as a pointer shown on a display to represent the user'sgaze location, has its position updated when reactable elements arepointed at or close by to the pointer (and corresponding user's gazelocation). This may be referred to herein as a “Magnet Mouse” mode ofoperation. Any movement by the pointer between reactable elements iseliminated. In the case of an eye-tracker, this makes use morenaturalistic; when the user is reading text on the screen, for example,no cursor updating occurs if the software is set to use the defaultreaction for an element (because text would have no default action on aweb page). Then if the user looks at a hyperlink or toolbar or in thevicinity of either, the cursor snaps to that object's location and thedefault reaction or zooming may occur. If the software is set to drag bydefault, for example, then pointer updating may occur all over the pagebecause any text on a web page may be highlighted.

As previously mentioned, reactable elements and the methods by whichthey react may be manually defined and/or may be automaticallydetermined. In the example where a user manually defines what isconsidered to be a reactable element, a user may choose to definecertain pre-defined items such as hyperlinks, selectable buttons, menus,icons, symbols, data input locations, or other items as reactableelements. In the example where reactable elements are automaticallydetermined, such determination may be implemented by the operatingsystem. For example, in a MICROSOFT® WINDOWS® environment, the operatingsystem may present data that the presently disclosed technology accessesby calling Application Program Interface (API) commands and interpretingthe resulting data to fit its needs (this includes using theUIAutomation or GetClassName API from Windows). These API calls may varybased on the application being interacted with, such as the need to usethe Document Object Model for Internet Explorer. In another examplewhere reactable elements are automatically determined, patternrecognition techniques may be applied such that the reactable elementsand their methods for reaction are determined by analyzing the screenimages themselves. Such processing algorithms may search a userinterface looking for enclosed shapes, such as squares or circles in thelive bitmap image of the screen by employing pattern recognitiontechniques, such as generalizing those used to find the eyes in theHutchinson et al. '563 patent. This is especially useful wheninteracting with older software or software from smaller softwarecompanies that do not follow operating system conventions. It isimportant to note that these methods require no special changes to theoperating system or off-the-shelf software that the subject eye trackingsystems are designed to control. Everything functions seamlessly withstandard software, such as Internet Explorer or Microsoft Office.

Referring now to FIG. 6, a particular exemplary method of implementingthe above features and steps is set forth. For example, a first step 600in an exemplary method of displaying and updating visual feedbackelements corresponds to electronically detecting a user's gaze locationcorresponding to where a user is looking at relative to a userinterface. In step 602, a determination is made as to whether anyreactable interface elements are pointed at or within a predetermineddistance from the user's gaze location. In step 604, a visual feedbackelement is electronically displayed on the user interface at the user'sgaze location, if one or more reactable elements are found at or withina predetermined distance from the user's gaze location. The visualfeedback element could be any type of visual display features aspreviously described, including but not limited to a pointer placeddirectly on the user's gaze location or an overlying image or iconplaced over all or a portion of an area surrounding the user's gazelocation (e.g., a fixed or expanding circle having its center of originsubstantially corresponding to the user's gaze location). The featuresdescribed in this section may also apply to the display of a visualfeedback element used to define a focus region (e.g., standard sized boxoutline or customized highlighted regions snapped to one or moreinterface elements).

In some embodiments of the present technology, the determination ofwhether to display or update a visual feedback element such as a pointeror element highlighting may additionally or alternatively depend onadditional analysis of the structure of eye movements determined bydetecting the user's gaze location. For example, in an eye-tracker, ifthe eye-tracking movements follow the movements defined for reading(i.e. for English speakers, left to right movements moving progressivelydownward), then the system may not want to display or update a pointereven if the user is reading hyperlinks or other selectable items. Assuch, determining a user's task based on eye movement structure or otherinputs and dynamically determining whether to display a pointer or othervisual feedback element may be another feature of the presentlydisclosed technology.

Referring still to FIG. 6, an additional optional step 606 maycorrespond to the electronic implementation of additional action(s)relative to identified reactable interface element(s) that are found ator within a predetermined distance from the user's gaze locationrelative to a pointer or other visual feedback element. For example, thevisual feedback element may be configured to snap to the closestreactable element within the user interface to the user's gaze location.As another example, a focus region may be displayed that surrounds theuser's gaze location and the pointer. As previously described, in someembodiments such focus region may correspond in shape and size to thereactable element at or closest to a user's gaze location. In a stillfurther embodiment, the initiated display of a pointer or other visualfeedback element when a user is looking at a reactable element may befollowed or supplemented by a reaction such as automatic zooming tocreate a magnified view around the reactable element and/or initiationof the default reaction associated with the reactable element (e.g.,pulling up the URL for a website defined by a certain hyperlink).

In a still further embodiment, detected reactable elements are providedas input to possible scanning choices for selection by a user employinga scanning access method for the eye gaze detection system. In the caseof non-direct selection methods, such as scanning, the reactableelements provide the input data for dynamically grouped scanning. Inessence, the rows and columns of only reactable elements are scanned,thus focusing the options for possible selection by a user. The user mayactuate a switch to select the row, column, or particular element thatis currently highlighted during the scanning process. Elements in theuser interface that are not reactable or selectable are disabled areskipped by the visual highlighting process.

Text Entry Inputs:

Yet another feature of the presently disclosed technology concernsefficient text entry options for controlling computer applications orfor communicating through computer technology. A method for implementingsuch efficient text entry features is generally depicted in the flowchart of exemplary steps set forth in FIG. 7. Examples of user interfacefeatures that may be implemented at selected steps in the method of FIG.7 are depicted in FIGS. 8-10, respectively.

Referring now to FIG. 7, a first exemplary step 700 in a method ofimplementing efficient text entry is to electronically determine whentext entry needs to occur within a user interface. In the case of textentry into other applications, whether or not text entry needs to occuris usually determined by the presence of the caret, the blinking shapethat appears in text entry areas in WINDOWS. In one example, thepresence of a caret can be determined by detecting the presence of acommand call to an operating system, such as but not limited to an APIcall, such as GetGUIThreadInfo in MICROSOFT WINDOWS. In another example,the presence of a caret can be detected by analyzing a live sequence ofbitmap images to detect if a blinking caret exists. This latter optionmay be helpful in instances when web pages, for example, do not reliablynotify the OS of a caret's availability. Such image analysis may beaccomplished just by looking at the pixel changes in a control when noinput is occurring. Changes matching the color inversion, width, andheight of a caret as defined by the OS may indicate the presence of acaret.

When a caret is detected in step 700, a button or other interfaceelement may then appear above the caret in step 702. Such interfaceelement is referred to herein as the “Enter Text button.” An example ofan Enter Text button depicted in the context of an exemplary userinterface is shown in FIG. 8. In FIG. 8, a user interface 800 includes acontrol element 802 in which text entry needs to occur. In response tosuch detection in step 700, an Enter Text button 804 is displayed to auser, for example above the control element 802 in which text entryneeds to occur. A user may then select the button 804 to open anonscreen keyboard with its own input area that allows the user to typedesired text using eye controlled selection of the onscreen buttons. Anexample of an on-screen keyboard that may be displayed to a user isshown in FIG. 9.

Once an on-screen keyboard is displayed as shown in FIG. 9, the systemmay then receive input from a user via eye-controlled selection or otherselection method for actuating the alphanumeric content or otherselectable interface items (i.e., keys) available in the keyboard. Inthe example of FIG. 9, a user provides eye-controlled selection of theappropriate buttons to spell the word “notepad.” Once the receipt ofdesired text input is complete, a user may select an additional button(e.g., the “Replace Text” button in FIG. 9) or implement another commandthat causes the received text input to either replace or append the textthat was previously provided in the text entry control element. FIG. 10shows how the text input corresponding to the word “notepad” entered viathe on-screen keyboard of FIG. 9 replaces the previous text “explorer”within the text entry area 802 of the same user interface area 800previously described with reference to FIG. 8. This text appending orreplacing occurs as part of step 706 in the method of FIG. 7.

As part of the steps in FIG. 7, the state of the computing device may beanalyzed to determine whether to implement text replacement or textappending and/or to determine specific features to selectively displaywithin an on-screen keyboard. Different characteristics that may beanalyzed may include one or more of the following: the type of control(e.g., text box, rich text box, etc.), the application using the control(e.g., Internet Explorer, Wordpad, etc.), the content of the textalready in the control (e.g., whether certain alphanumeric characters,symbols, or strings of text such as “http” or “@” are included) and theamount of text already in the control (e.g., total number ofcharacters). For example, consider a text box control for entering theURL address in a web browser. The particulars of this type of controlmay be determined because of the type of control (e.g., a text box fordefining a web address), the type of application (Internet Explorer,Mozilla Firefox, Safari, etc.), the content of the text (e.g., detectionof “http”) and/or other analyzed state(s) of the computing device. Oncethe text box control is identified as such, a special on-screen keyboardwith shortcuts associated with a web address may be provided, and thetext typed using that special keyboard may then be a replacement of whatwas previously in the text box.

In some embodiments, such analysis may additionally or alternatively beapplied to control elements in the vicinity of the element in which auser is inputting text. For example, the type of one or more nearbycontrols, the application(s) using one or more nearby controls, thecontent and/or amount of text in one or more nearby controls may beanalyzed. Analysis of control elements near a control element ofinterest may be particularly helpful to provide more comprehensiveanalysis in determining whether to append or replace text. In addition,analysis of nearby control elements would be helpful when no text isprovided in a control element of interest.

It should be appreciated that the various settings for how efficienttext entry features are implemented in accordance with the presentlydisclosed technology may be defined by default settings or may becustomized by a user by presenting a menu interface of selectablechoices. Although in some embodiments, such features are all useradjustable settings, certain default rules may be implemented. Forexample, text boxes may be generally configured to replace text and richtext boxes may be configured to append text if more than one-hundred(100) characters are present. This behavior may change depending onwhich application (e.g., Internet Explorer or Wordpad) has the rich textbox (Wordpad would always append for example because you are writing adocument). Additionally, if the amount of text is less than one-hundred(100) characters or if the control is not a text box, the text isextracted from the control and placed into the input area formodification.

This text entry method has the primary advantage over other availableonscreen keyboards of not requiring either an extremely small onscreenkeyboard to type into other applications or requiring the otherapplications to be shrunk down to an extremely small size to accommodatethe presence of a large onscreen keyboard. In the presently disclosedsystem and method, text entry occurs within features provided as part ofthe technology, and the system then transmits the text either throughsimulated keystrokes or through operating system API calls, whichever isappropriate and more accurate, based on the control or application. Thecontrol or application may also define what task the user wishes toperform, such as entry of an e-mail address, and bring up a specificonscreen keyboard based upon the task being performed when the EnterText button is clicked. For example, a keyboard may be configured toinclude the “.com” shortcut as a button on its screen if the user isentering an e-mail address or web page URL.

With still further reference to the presently disclosed text entryfeatures, the task being completed and the response due to that task maybe detected based upon the structure of the pointing device's movementsand text generation status. For example, in an eye-tracker, if theeye-tracking movements follow the movements defined for reading (i.e.for English speakers, left to right movements moving progressivelydownward), the text entry options or reactable element options maychange (no Magnet Mouse pointer updating even if a hyper link is read inthe course of non-disrupted normal reading, for example). Or as anotherexample, if the pointer does not change and text is being consistentlygenerated, then typing is occurring. This means settings related toselection may be disabled or set to highlighting/dragging by defaultinstead of clicking. The Enter Text button may disappear as anotherexample. As such, determining a user's task based on eye movementstructure or other inputs and dynamically changing how and what inputmay occur as a result may be another feature of the presently disclosedtechnology.

Word Prediction Features:

All of the methods described above are also useful for the communicationfunctionality granted by the presently disclosed technology. The subjectsystems and methods can present buttons for typing letters or words orphrases, and these buttons fall within the context of reactable elementsdescribed herein. These buttons can potentially perform innumerablecommands, such as changing the active layout of buttons, sendinginfrared commands out of a remote built into a computer, or launchingapplications. The invention is an extensible framework where additionalfunctionality can be added with further development.

When typing with an onscreen keyboard or with any application containinga message composition or content window, the presently disclosedtechnology may also provide features for predicting what words the userwishes to type and should the user select the button containing thatword, the invention will then type that entire word without the subjectselecting each letter in the word. While the user types, features may beprovided to limit the other letters available based on whether or notany prediction matches contain the next letter to be typed at thecurrent location in the word being typed. For example, as shown in FIG.11, the letter “e” and possible other vowels would be available if theletters “Th” were already provided in a message composition window and athird letter was about to be typed and/or if “then” was a predictionchoice based upon already entered text or other words. Such limitedbutton selections may also be determined based on a comparison of textentered in the message window to a database of dictionary entries.

The inclusion of such word prediction features greatly reduces theavailable targets to the user and leads to more reliable selection ifthe user is having difficulties being accurate. A button in the softwaremay easily disable this feature for the current word to allow the userto type a word not in the dictionary. The invention may auto-learn theword typed so that it is then present in its dictionary the next timethe user types the word. This feature also greatly increases thescanning speed of users when they use indirect selection methods becauseentire buttons, and possibly entire rows or columns are completelyskipped by the software if they are disabled. This is another example ofhow the invention looks at controls and their current state to reducethe choices available to the user to those relevant to the currentcontext in which the user is operating.

Another important feature offered by certain exemplary embodiments ofthe disclosed technology is called auto-conjugation. This featureadjusts the labels and command data typed by particular buttons basedupon the text appearing in the input area. For example, to speed typing,predefined buttons may be mapped to pronouns of the English language,such as I, he, she, or they. Other buttons may be mapped to auxiliaryverbs, like am, were, had, have. Still other buttons may be mapped toverbs, such as ask, go, be. To type the sentence, “I am going”, youwould hit the “I” button, then the “am” button. You would then want tohit the “go” button and type the letters “ing” after it to get the wordyou wish. One downside to this approach is that it does not give asignificant rate enhancement. So you could set up another onscreenkeyboard that appears after you click the “am” button that changes allthe verbs to the appropriate tense. Another downside to this approach isthat it requires you to create and link many different onscreen keyboardlayouts for it to work smoothly, and any change to one layout, such asbutton order, has to be changed in all the linked layouts. Withauto-conjugation, no extensive layout programming or concessions by theuser need to be made. The present technology automatically changes theverb buttons to have the appropriate tense based on a definedconjugation dictionary that lists all conjugations for different verbs.When the word “am” appears in the text entry area, the verb buttonsautomatically change the proper tense. For example, “go” changes to“going”. This significantly speeds the data entry by the user andreduces the number of layouts needed by the software. Also, it does notrequire the user to hit the “am” button to receive the conjugations. Theword “am” when it appears in the text entry area, through an auxiliaryverb button, the onscreen keyboard, or normal typing, or any other typeof auxiliary verb could be used to change the verb buttons.

A visual example depicting aspects of the auto-conjugation features isprovided in FIGS. 12 and 13. In FIG. 12, a first exemplary onscreenkeyboard layout 1200 includes a plurality of buttons that includeletters as well as core vocabulary words (e.g., commonly used parts ofspeech including but not limited to groups of adjectives, adverbs,interjections, nouns, pronouns, main verbs, auxiliary verbs,conjunctions, determiners, etc.) In one example, a group of buttons 1202shown in FIG. 12 includes a set of commonly used main verbs shown intheir infinitive form. This group of buttons 1202 may dynamically changebased on user input into the text entry or message composition window1204. For example, referring now to FIG. 13, after a user interactingwith user interface 1300 provides text entry into message window 1304corresponding to the words “I am,” the core verbs provided in interfacesection 1202 of FIG. 12 are changed to a group 1302 of the same verbs intheir present participle form based on detection of the auxiliary verb“am” in the message window 1304.

Based on these examples, one of ordinary skill in the art shouldappreciate that content items (including both the identifying label orvisual appearance of a button or other interface element and theunderlying command/action the button or other interface element invokes)can change depending on a variety of detected items within a messagecomposition window. For example, when a set of content items includes aparticular part of speech (e.g., verbs), then the linguistic form ofsuch content items (e.g., verb forms such as infinitives, gerunds andparticiples) may be changed depending on the input already provided inthe message composition window. In another example, content items may bechanged to correspond to one or more particular parts of speechdepending on the parts of speech of words already provided in themessage composition window. So, for example, content items could includeonly nouns, adverbs, verbs, etc. based on what part of the sentence wasbeing provided in the message composition window.

One of ordinary skill in the art will further appreciate that the aboveword prediction and other related text entry features can be applied toany type of predefined, customized or third party user interfaces. Assuch, a message composition or content window in which text entry orword prediction features are applied could potentially come from avariety of applications running within an operating system, including acustom keypad or a third party application such as notepad, MicrosoftOutlook, notepad or the like.

The above is an example of the Rules Framework. The Rules Frameworkallows users to generically determine how particular buttons or changesto the input area or commands sent by the software define how otherbuttons respond—be it label changes or command changes on buttons of aparticular type. This makes it easy for users to add significantfunctionality to embodiments of the disclosed technology, such as havingcustomized user defined buttons respond to a shift key being pressed,without actual program changes under the hood required by thedevelopers. Auto-conjugation is just an example of a Rule Framework.

Based on the above disclosure, additional description of a method ofimplementing the above exemplary word prediction features and others fora graphical user interface are now discussed with reference to FIG. 14.Referring to FIG. 14, a first exemplary step 1400 in such methodinvolves electronically displaying a user interface to a user. As shownin the exemplary interfaces of FIGS. 11-13, a user interface may includesuch interface elements as a message composition window and a pluralityof selectable buttons having respective content items (i.e., labels andcorresponding actions which may include such items as letters, numbers,words and/or symbols).

In step 1402, content provided within a message composition window isdetected or determined. Such content may be provided as a result of userselection of selected ones of the plurality of selectable buttons withinthe user interface. User selection of such buttons may typically resultin the generation of message content in the message composition windowportion of the user interface. User selection of such buttons may occurusing different types of input interfaces. For example, an eye trackermay be used as an input interface such that detecting button selectioninvolves tracking a user's eye gaze location relative to the buttons ona user interface. In another example, a touch screen display may be usedas in input interface such that detecting button selection involvesdetecting user activation of touch screen elements (via capacitive,resistive, pressure sensitive or other type of touch screen activationtechnology).

After content is detected or determined in step 1402, refresh commandsmay be sent to an operating system. For example, in a word predictionscenario, updated content provided in a message window is sent with theupdated content as the message data. This command with updated contentdata is used within the system to alter the content items and associatedcommand data associated with various interface elements. As such, afinal step 1404 in FIG. 14 may involve altering the content items andcorresponding commands associated with selected ones of the selectablebuttons based on at least a portion of the message content (e.g., someor all of the specific content, the position of the caret in the messagecomposition window, and/or other aspects of the message content)provided within said message composition window. In one example, suchalteration set forth in step 1404 may correspond to making selected onesof the selectable buttons available for selection by a user and otherselected ones of the selectable buttons unavailable for selection to auser, similar to the arrangement depicted in FIG. 11 where some lettersare available and others are not. In another example, the alteration instep 1404 may correspond to changing the form of a given set of contentitems that have labels corresponding to particular type of speech (e.g.,verbs being changed from infinitive to present participle form asdepicted in FIGS. 12 and 13).

Auto-Calibration:

One example of a known method for calibrating an eye tracking system isdisclosed in U.S. Pat. No. 6,152,563 (Hutchinson et al. '563). Tomeasure where someone is looking, the Hutchinson et al. '563 patentemploys a single camera with a highly magnified view of the eye thatidentifies the reflections generated off of the eye by a single infraredlight emitting diode (LED) mounted at the center of the lens of thatcamera. Specifically, as shown in the representation of a user's eye 36in FIG. 15, eye illumination causes the user's pupil 38 to glow and atiny reflection of the diode, called the glint, to appear off of thecornea. After a calibration procedure, accurately identifying thesereflections allows the system of the Hutchinson et al. '563 patent toaccurately measure where someone is looking. However, the user can onlymove his or her head a few inches in any direction and remain in thecamera's field of view. This fixed head position requirement makes thesystem mostly useful to individuals with paralysis and not those withinvoluntary movements.

Also, in the Hutchinson et al. '563 patent, the user needs to first lookat a series of calibration points on the screen in order for the systemto accurately measure where someone is looking on a computer screen. Forexample, as described in the Hutchinson et al. '563 patent and asdepicted in FIG. 16, a user must look at a series of calibration points40. After looking at the points, the system performs a regressionanalysis to generate a series of mathematical equations that couldoutput where someone is looking given any vector between a glint andpupil center. A limitation of this technique is that as the head movesin 3D space, the equations need to be altered to maintain accuracy. Inthe known system, this requires recalibration any time a user's headmoves.

In light of the above limitations, an improved system and method forproviding auto-calibration in an eye tracking or eye gaze directiondetection system is provided. One advantage to such improved technologyincludes tolerating far greater head motion, allowing the eye trackingsystem to be used by individuals with involuntary motion while alsomaking the system more easily used by able-bodied individuals in morenaturalistic settings, as required by some of the previously identifiedmarkets. This is accomplished in part by employing at least two camerasthat look simultaneously at a user's entire face (and eye(s)). Theresulting wider field of view allows a user to move more freely in frontof the system while remaining in view of the cameras.

Another advantage to such improved technology relates to removing therequirement that a user must look to a specific series of calibrationpoints on a display screen. References herein to a calibration-free orauto-calibration system impliedly reference the removal of thisrequirement. By eliminating the often tedious and time-consuming task ofhaving a user look at certain points or track movement on a screen, thesystem is far easier to set up and be used by individuals who cannot orwill not look at a sequence of calibration points.

Auto-calibration can be achieved in part by using a two camera system asdescribed herein and running continuous eye identification algorithms.By using two cameras with structured lighting, the system can measurephysiological properties of the eye that enable it to generatemathematical equations describing the properties of the user's eyewithout the user looking at a series of calibration points. When theuser is in front of the cameras, the system may immediately starttracking and moving the pointer to where the user is looking. This maybe accomplished in part by running continuous eye identificationalgorithms as described herein to detect eye images and gather datarequired for tracking. For example, when no eye is detected in front ofthe eye tracker, the eye identification algorithms run continuously sothat the system will immediately begin tracking a new person or theoriginal person if that person returns to the camera's field of view.Calibration could immediately and automatically begin once a new set ofeyes are found or after no eyes have been found for a set amount oftime. Such auto-calibration feature provides an improvement over theknown technology from the Hutchinson et al. '563 patent as well as otheravailable eye-tracking devices.

To further accomplish calibration free eye-tracking, it should beappreciated that a calibration model and corresponding calibrationequations may be utilized which helps translate gathered eye image datato point locations in a display screen. In general, a particular exampleof a calibration model that may be used in the present technology modelseye movement by generalizing the eye as a sphere. The amount the sphereis rotated is based on the 3D position of the eye and the measure of thevector distance between the pupil center and glint, as seen by thecamera(s) and defined more thoroughly in the Hutchinson et al. '563patent.

A key aspect of the eye tracking calibration technology disclosed hereinis to provide a positional independence relative to the calibrationmodel. In particular, a motion tolerant and auto-calibrated system isachieved by understanding that knowing where a particular user's eyesare specifically in space is not required. Instead, the system onlyrequires knowledge of how much the user's eyes have deviated from aprevious position in space. Such deviation of the eye's position inspace is generally represented by a scaling factor, to be discussed withfurther reference to FIG. 17. Advantages can be achieved not by changingthe calibration model or related equations, but instead by changing theinputs to those calibration equations that change based on the scalingfactor. In essence, applying a scaling factor removes a user's specificpositional information from captured image data. Such factor works whenthe user operates in a polar coordinate system based off the glint/pupilpositions reported by the eye finding operations.

Referring now to FIG. 17, a first step 1700 in an exemplary method ofproviding automated motion-tolerant calibration for an eye trackerinvolves obtaining an initial set of eye images and at least onesubsequent set of eye images. In one particular example, each set ofimages may include images taken by respective first and second imagecapture devices, such as represented in FIG. 1. In such example, twowide angle cameras with structured lighting may be used to provide anoverlapping field of view. In one embodiment, the cameras may have LEDsmounted at the center of each of their lenses. These LEDs create theglint and the glowing pupil, called the bright eye effect. In the casewhere a smaller focal length lens needs to be used to create an evenwider overlapping field of view (for example when a large screen fordisplay is being used), a ring of LEDs around the camera lens may beused to generate the bright eye effect. This may be preferred with asmall focal length, because an LED at the center of the lens cansometimes obscure the camera image and decrease the effective apertureof the lens, thus diminishing image quality. The resulting camera imagesobtained in step 1700 may be considered zoomed out views of the cameraimages generated by the Hutchinson et al. '563 patent, with each imagecontaining a wider field of view with two eyes seen in each image. Instill further embodiments, it should be appreciated that the dark eyeimaging techniques discussed herein also may be used to obtain thedesired glint and pupil information desired herein.

When two image capture devices are used to obtain a set of images, asynchronization or locking process may be implemented to coordinatetiming of illumination of light sources associated with such imagecapture devices and as well as timing of camera operation. For example,two cameras may be synchronized such that when one camera begins tointegrate its charge coupled device (CCD) array, meaning it begins tocapture the image, the light source for that camera is turned on whilethe light source for the other camera is turned off, and the othercamera does not integrate. When the first camera finishes integration,its light source turns off, and the other camera turns its light sourceon and begins to integrate. This locking allows each camera to see abright eye effect without having its camera image impacted by the othercamera's light source. An alternate locking process may be used allowingeach camera to see a dark eye effect (e.g., by having the first cameraintegrate only while a light source associated with the second camera isturned on and having the second camera integrate only while a lightsource associated with the first camera is turned on.) Such lockingprotocols may be accomplished by sending clocking signals outputted fromone camera into the LED arrays and the trigger inputs on the secondcamera.

Referring still to FIG. 17, a second step 1702 in such method comprisesdetermining a scaling factor for each subsequent set of images obtainedas the eye tracking process continues. In general, the scaling factorfor each subsequent set of images is determined by the spatialdifference in eye features (e.g., glint and pupil features) between thatsubsequent set of images divided by the spatial difference in eyefeatures from a previous set of images (either the initial set of imagesor another previous set of images for which calibration equations areautomatically generated).

In step 1704, ocular characteristics of a user's eyes then optionallymay be obtained. Certain ocular characteristics are obtained in order toadjust the image data obtained by an eye tracking system so that thedata applied to a calibration model is as accurate as possible. In oneexample, such ocular characteristics may be determined ahead of time andentered into an eye tracking system as predetermined data. In anotherexample, such ocular characteristics are measured by the subject system.Measurements may be initiated by the system, by a user looking at acamera or other feature or taking some other user-initiated action, orin an automated manner that does not require any user intervention.

Using just a generalized spherical model of the eye can sometimes causeinaccurate gaze estimate. Such a model uses assumed values forcharacteristics of a user's eye, such as foveal displacement and radiusof curvature. As such, the model can be further enhanced by correctingfor the actual optical characteristics of the user's eye. Traditionalcalibration methods, where the user looks at a series of points, areimplicitly measuring these characteristics and compensating for the 3Dposition of the user. In the presently disclosed technology, a user'socular characteristics are measured without the need for the user tolook at a series of calibration points in order to provide a calibrationfree eye-tracking system. This type of system is beneficial because someusers, such as those with profound disabilities, cannot keep their focuson a series of points that move during calibration. Additionally, someusers face cognitive challenges where teaching them to look at thepoints is time consuming and frequently impossible yet communicationwould still be possible for them if they did not have to completecalibration.

A first exemplary ocular characteristic to measure in step 1704 is thefoveal displacement vector, a measure of how much the fovea deviatesfrom the optical axis of the eye. The fovea is the region of the eyethat has a high density of photoreceptors. It is the part of the eyethat “sees” where you are looking at to a high degree of clarity, asopposed to the peripheral region, which has fewer photoreceptors. Thefovea subtends for about one degree visual angle from the eye; thiscreates the fundamental accuracy limitation in eye-trackers mentionedearlier. If you know exactly where the eye is pointed, you only knowwithin one degree visual angle, or a few millimeters at a normal viewingdistance, what the person is actually seeing. The fovea is a biologicalmechanism; as such, it is not perfectly aligned with someone's opticalaxis. By making a measurement of the foveal displacement vector, theinputs into the generalized equations for the spherical model of the eyecan be corrected. In essence, the foveal displacement vector issubtracted from all subsequent glint-pupil vector measurements and thismodified vector value is ultimately fed into the calibration equationsor generalized spherical model of the eye, for example, as described inthe Hutchinson et al. '563 patent. The foveal displacement vector mayalso be modified by the scaling factor determined in step 1702 based onthe distance change of the eye from its initial position of measurementprior to subtracting it from the scaled glint-pupil vector.

Numerous examples as may be known by one of ordinary skill in the artmay be used for measuring the foveal displacement of a user's eyes.Under the generalized spherical model of the eye, the glint rests at thepupil center when the eye looks back at the camera. To measure thefoveal displacement vector, the system may simply measure theglint-pupil center separation when the user looks back at the camera.This is accomplished by making the user look at the camera while holdinghis/her gaze steady to enable pointer control with his or her eyes. Todetect this, the system analyzes the resulting camera images that occurwhen the glint-pupil center approaches convergence and holds steady fora specified amount of time.

A next exemplary ocular characteristic that may be measured in step 1704is the radius of curvature for the cornea. The assumed value for allhumans used in the generalized spherical model can result in inaccuratemeasurements of spherical rotation. To measure radius of curvature, thecameras, whose light sources are generally in sync with the integrationof their actual CCDs, now light up out of sync. This means the LED(s)for the camera that is turned off are now on when the other camera isintegrating, and the LED(s) for the camera that is integrating areturned off. This creates a very different camera image, one where thepupil is dark and the face is bright, as opposed to having the pupilbright and the face dark. This is called the Dark Eye effect. Note thatthis Dark Eye effect could also be generated by having a bank of LEDsmounted between the cameras and turning these LEDs on and the LEDsmounted at the center of the camera lens or around the camera lens off.The timing on how the LEDs flash can be controlled through the SDKprovided by a camera manufacturer.

Referring still further to FIG. 17, a next step 1706 in the subjectmethod of providing auto-calibration features is to obtain glint andpupil information for one or more eyes from each set of images. Glintand pupil information may comprise separate data defining therespectively determined locations of the glint and pupil. Alternatively,glint and pupil information may comprise a vector or other parameter(s)defining the glint and pupil relative to one another (e.g., aglint-pupil vector defining the distance between the pupil and glintcenters.) As previously mentioned, the glint and pupil informationneeded for gaze location determination can be obtained from eitherbright-eye or dark-eye images. One example of glint and pupilidentification is represented in FIG. 15 and described further in theHutchinson et al. '563 patent, while others are known in the art. Theglint and pupil information is what is needed as input to the equationsdefining a calibration model. As such, the glint and pupil data is alsomodified in step 1706 as needed according to the scaling constant. Inother words, each glint and pupil measurement provided as input for asubsequent image is modified according to the scaling factor determinedin step 1702 that defines where the user is looking relative to someinitial or previous location.

As part of gathering glint and pupil information for one or more eyes inan image or set of images, all or part of an image may be analyzed todetect/identify eyes within the image(s). Numerous eye identificationalgorithms exist, and the algorithms described in the Hutchinson et al.'563 patent can be used to find the eye in one image. Executing thealgorithms multiple times on a single image allows all potential eyes tobe found in an image. If the task of finding eyes in an image is appliedto a set of images (e.g., images obtained by respective first and secondcameras), an eye identification algorithm can be implemented for thesecond camera's image as well as a first camera's image in the set ofimages.

After finding all eyes, embodiments of the disclosed technology may thenpick the appropriate pair of eyes in each image by finding a pair in thefirst image that closely aligns with a pair in the second image inregards to size of the pupil and alignment (meaning distance andseparation between the eyes). Because the dual-camera system has cameraswith overlapping fields of view, the valid eyes will look approximatelythe same in each image. Misidentifications in one image can beeliminated because they will not appear in the second image. In otherwords, the orientation of the eyes in one image would not match theorientation in the second image if the wrong features are found.

Once glint and pupil information (modified as needed) is obtained instep 1706, a final step 1708 involves applying the glint and pupilinformation to a calibration model to determine a sequence of equationsfor mapping glint and pupil data to a display. The calibration model towhich the modified glint-pupil information is inputted may correspond tothe generalized spherical model of the eye which may or may not becorrected by accounting for the ocular characteristics (e.g., fovealdisplacement and corneal curvature) measured in step 1704. The modifiedglint-pupil information from step 1706 is then provided as input to thecorrected calibration model and an accurate point of regard iscalculated. Each eye's gaze direction may be calculated independentlyonce the input data is corrected, and the results may be averaged todetermine a single point of regard. In addition, smoothing routines maybe optionally applied to data at any point before or after the mappingin step 1708.

Image Capture Mode:

Many known eye tracking systems and methods, including those describedin the Hutchinson et al. '563 patent, utilize a so-called “bright-eye”approach for obtaining pupil information from an image. In general, thebright eye approach typically involves obtaining an image of one or moreeyes of a user while the user's eyes are illuminated by a light sourcethat is substantially coaxially aligned with the lens of a video cameraor other image capture device. This optical arrangement preferablyyields an operant image consisting of an iris and sclera (both dark),the reemission of the infrared light out of the pupil (bright eye), andthe corneal reflection of the infrared light source (glint). An in-focusbright eye image gives a high contrast boundary at the pupil perimetermaking it easily distinguishable.

Although the bright-eye or bright-pupil mode of image capture andsubsequent image processing may generally provide a suitable image foreye tracking purposes, dark-eye effects may also be used. Whether to usebright-eye techniques or dark-eye techniques have often been a matter ofdesign preference depending on such factors as hardware designconstraints, lighting conditions, user's eye color, etc. Conventionaleye tracking devices often used only one mode or the other (eitherbright-eye or dark-eye) to capture eye images for processing andtracking purposes.

In light of the prior all-or-nothing approach of image capture in eyetracking systems, one improved feature of the presently disclosedtechnology is to provide a system and method that includes bothbright-eye and dark-eye image capture modes as well as features fordynamically determining which mode to use based on certain parameters.Aspects of this feature are illustrated in FIGS. 18-20.

Referring now to FIG. 18, a first exemplary step 1800 in a method ofoptimizing the image capture mode (e.g., bright-eye mode or dark-eyemode) for an eye tracking device involves obtaining at least one imageof a user's eye(s) containing a bright-eye effect and obtaining at leastone image of a user's eye(s) containing a dark-eye effect.

As shown in FIG. 19, an eye image 1900 having a bright-eye effectgenerally corresponds to an image where the iris 1902 and sclera 1904are both dark, leaving the pupil 1906 as a bright portion in the image(similar to red-eye effects produced by some cameras). The glint, orbrightest corneal reflection, 1908 (as well as optional additionalPurkinje reflections) is also visible in the bright-eye image 1900. Abright eye image may be obtained by each image capture device in one ormore ways. In one embodiment, a conventional approach of providing alight source in substantially coaxial optical alignment with the lens ofan image capture device achieves bright-eye images. In anotherembodiment, a light source could be provided around the image capturedevice (e.g., a ring of LEDs surrounding the periphery of the imagecapture device lens).

As shown in FIG. 20, an eye image 2000 having a dark-eye effectgenerally corresponds to an image where the iris 2002 and sclera 2004are both bright, leaving the pupil 2006 as a dark portion in the image.The glint 2008 (as well as optional additional Purkinje reflections)should also be visible in the dark-eye image 2000. A dark eye image maybe obtained by each image capture device in one or more ways such thatan image capture device obtains an image while a user's eye(s) areilluminated by a light source that is not substantially coaxiallyaligned with the operative image capture device. In one embodiment,where two or more image capture devices have substantially coaxiallyaligned light sources, each image capture device may be coordinated tooperate by using the other image capture device's light source. Forexample, a first image capture device may obtain images while the secondlight source illuminates a user's eyes. Likewise, a second image capturedevice may obtain images while the first light source illuminates auser's eyes. This way, the same light sources and image capture devicescan be used in a different fashion to implement both bright-eye anddark-eye effects in the same eye tracking device. In another embodiment,the dark-eye effect could be generated by having a bank of LEDs mountedbetween the at least two image capture devices and turning these LEDs onand the LEDs mounted at the center of the camera lens or around thecamera lens off. In a still further embodiment, the LEDs may not belocated between two cameras, but are instead off to either the left,right or both sides of the one or more cameras. The timing on how thevariously configured LEDs or other suitable light sources flash can becontrolled through the SDK provided by a camera manufacturer.

Once bright-eye and dark-eye images are obtained in step 1800, a usermay then gather various data parameters associated with such images inorder to make the determination in step 1804 of whether to choosebright-eye versus dark-eye modes for future image capture. In general,the goal behind the parameter analysis and determination is to choosethe method that will give a user the most reliable determination of eyefeatures going forward based on either environmental conditions, usereye conditions, or a combination of the two (as sometimes one impactsthe other). In some embodiments, image scores may be obtained for eachbright-eye image and dark-eye image that include one or more of thepossible eye feature parameters in some weighted or preconfiguredcombination of such parameters in order to assess the best image mode.

It should be appreciated that in some embodiments of the disclosedmethods of bright-eye versus dark-eye mode determination, it may also bedesirable to invert either the bright-eye image or the dark-eye image sothat the same techniques can be used to analyze and compare thedifferent images. For example, inverting one of the two images providesa benefit of using the same eye feature finding algorithm to detect sucheye features as the glint or pupil in an analyzed image.

One parameter that may be identified in step 1802 is the average imageintensity. Determining a best image capture mode based solely or in partby analyzing image intensity is an advantageous implementation becauseanalysis has shown that dark eye images are typically better forobtaining eye tracking image data if an image is very bright. Imageintensity levels may be calculated for some or all pixels or areas in animage and may be calculated in accordance with one or more imageintensity algorithms as known by one of ordinary skill in the art. Forexample, known methods of calculating image brightness, luminescence,and/or luma and the like may be used. Additionally or alternatively, oneor more pixels may be analyzed by determining a weighted summation ofits component intensities (e.g., red, green and blue componentcontributions to a pixel(s) or cyan, magenta, yellow and black componentcontributions to a pixel(s).) Instead of overall image intensity, itshould also be appreciated that intensity levels for one or more partsof the image may also be used instead or as part of the image intensitydetermination. For example, pupil intensity and/or glint intensity maybe gathered.

Another parameter than may be identified in step 1802 is the pupilnoise. In one embodiment, pupil noise may be determined after otherimage analysis is done. Systems that analyze pupil noise levels indesignating an image capture mode thus optimize their trackingtechnology based on a variety of factors, including the environment andphysiological properties of the subject's eyes. The Hutchinson et al.'563 patent mentions an algorithm for smoothing pupil noise to assistwith refining the eye tracking process. In the present technology, pupilnoise may additionally be analyzed to determine a pupil noise score.Such pupil noise score may be calculated by determining which, if any,pixel locations have image characteristics that are outside of one ormore predetermined threshold levels. Such pupil noise score then may beused to help determine whether a bright-eye image or a dark-eye imageresults in a higher quality image (thus meaning the image has a lowerpupil noise score). Whichever image has a lower pupil noise score andcorresponding better image quality will be considered in designating thebest image capture mode.

A still further exemplary image data parameter that may be gathered instep 1802 is an image glare score. In particular, the at least onebright-eye image and at least one dark-eye image obtained in step 1800may be analyzed to determine the number of, size of, density of, or areaof an image covered by glares. Glares typically correspond to highintensity artifacts in an image such as may be caused by the presence ofa user's eyeglasses. A glare generally has the same or higher intensitythan a glint, but the glare is larger. Glare identification typicallymay be done before any attempt at glint or pupil identification is made.In one example, glares may be found by scanning an image in verticaland/or horizontal directions for pixels having a higher image intensitythan some given threshold value. Groups of higher image intensity pixelsare then identified and the areas of such groups are analyzed todetermine which groups are large enough to likely correspond to glares.

The number, size, area, density, etc. related to the identified glarescan then be analyzed. In some known systems, glares are detected inorder to remove them from an image before subsequent image processing.In the subject system, glare identification is also used to helpdetermine a glare score for choosing the best image capture mode.

Referring still to FIG. 18, after one or more image data parameters aregathered in step 1802, a best mode of image capture is designated instep 1804 as either the bright-eye image capture mode or the dark-eyeimage capture mode. After such designation, either the bright-eye modeor the dark-eye mode is then used for subsequent image capture in theeye tracking process. In one embodiment, the mode designated in step1804 is used until a user's eyes are lost and the tracking system isrequired to perform a new auto-calibration process. In anotherembodiment, the subject system is configured to periodically perform theassessment set forth in steps 1800-1804 so that the system cancontinually determine which mode is best. In such example, an additionalstep 1806 thus involves periodically determining whether to continueusing the mode designated in step 1804 or to shift to a different modebased on changes to the gathered data parameters in step 1802.

ADVANTAGES

The above described embodiments and others as will be appreciated by oneof ordinary skill in the art based on the present disclosure provide anumber of advantages for potential users. For example, aspects of thedisclosed technology bestow a level of independence previously unknownor lost to those individuals with a wide range of disabilities byproviding them with a system that accurately measures where they arelooking in a motion tolerant, calibration free manner and uses thatinformation as input into a computer based system, such as a desktopcomputer, laptop computer, or cell phone. Such a device could also provebeneficial in other areas, including psychological research, marketingresearch, gaining, or medical diagnostics. This system could be used tomeasure where people look in cockpits, while driving, while performingsurgery, in arcade games, on television screens, movie screens, or anyother environment where measuring a person's direction of gaze canprovide additional value.

Additionally, when interacting with any piece of technology, the user istypically presented with a series of available actions he or she canperform. Alternatively, a user implicitly knows what he or she can dobased on the state of the technology. It is not always immediatelyobvious what commands, choices, or text should or could be entered intothe software application or operating system a user is working with.Another purpose of the disclosed technology is to alleviate or at thevery least reduce this ambiguity, granting the user faster and morereliable data entry and access to the technology. This is accomplishedthrough the development of contextually aware selection and data inputtechnology.

This aspect of the invention is especially, important for those with thedisabilities described above. Individuals with disabilities who employalternative access technology, such as the eye-tracking system disclosedhere, head pointing mice, scanning technology, or voice activatedtechnology typically have great difficulty using this technology toaccess a computer or to communicate because, due to the nature of theirdisease or injury, they are unable to make reliable selections withtheir access technology. By reducing the available command choices basedupon the context in which the user is operating, such as the task theyare performing, individuals with disabilities gain far more reliable andfaster control over their technology. Indeed, this invention isimportant in any environment where the ability to accurately selectcommands is hampered, such as when the user may be distracted byperforming other tasks or is even just moving (such as walking andtrying to access their cell phone).

Many of the concepts described herein may variously lead to faster andmore reliable selection and text entry in a computer system forindividuals with disabilities, particularly those using the disclosedeye-tracking system. These concepts may be easily generalized to applyto cell phones, touch screens, cash registers, or any other type oftechnology, particularly technology that is used by distracted ormultitasking individuals where contextually aware selection choices canimprove reliability and task completion speed. Additionally, theeye-tracking system may be used in any many other different markets andenvironments, including psychological research, market research, medicaldiagnostics, gaming, or any other market where knowing point of gazedata can prove beneficial.

While the present subject matter has been described in detail withrespect to specific embodiments thereof, it will be appreciated thatthose skilled in the art, upon attaining an understanding of theforegoing may readily produce alterations to, variations of, andequivalents to such embodiments. Accordingly, the scope of the presentdisclosure is by way of example rather than by way of limitation, andthe subject disclosure does not preclude inclusion of suchmodifications, variations and/or additions to the present subject matteras would be readily apparent to one of ordinary skill in the art.

1. An eye gaze detection system, comprising: a display device configuredto display a user interface to a user, said user interface comprisingone or more interface elements; at least one image capture device fordetecting a user's gaze location relative to said display device; and aprocessing device configured to electronically analyze the location ofuser elements within the user interface relative to the user's gazelocation and dynamically determine whether to initiate the display of azoom window; wherein said processing device is further configured toelectronically analyze one or more of the number, size and density ofuser elements within the user interface relative to the user's gazelocation as part of the dynamic determination of whether to initiate thedisplay of a zoom window.
 2. (canceled)
 3. The eye gaze detection systemof claim 1, wherein said processing device is further configured toelectronically analyze the application type associated with said userinterface or at the user's gaze location as part of the dynamicdetermination of whether to initiate the display of a zoom window. 4.The eye gaze detection system of claim 1, wherein said processing deviceis further configured to determine the level of magnification of saidzoom window relative to said user interface based on one or more of thesize, number, location and density of interface elements relative to theuser's gaze location.
 5. The eye gaze detection system of claim 1,wherein said processing device is configured to implement the display ofa focus region on the display device around the user's gaze location onthe user interface or within the zoom window.
 6. The eye gaze detectionsystem of claim 5, wherein said focus region is configured to match thesize of one or more interface elements within the user interface or zoomwindow.
 7. The eye gaze detection system of claim 5, wherein saidprocessing device is configured to implement the display of a visualfeedback element at a designated location within the focus region whilea user's gaze location remains anywhere within the focus region.
 8. Theeye gaze detection system of claim 1, wherein said processing device isfurther configured to electronically analyze the structure of eyemovements detected by said at least one image capture device as part ofthe dynamic determination of whether to initiate the display of a zoomwindow.
 9. A method for automatically initiating user interfacemagnification within an electronic device, said method comprising thesteps of: electronically detecting the presence of one or more interfaceelements in a user interface relative a user's gaze point on the userinterface; electronically determining the density of interface elementsaround the user's gaze point; and automatically initiating the displayof a zoom window if the electronically determined density of interfaceelements exceeds a predetermined density threshold level, said zoomwindow comprising a magnified view of a portion of said user interface.10. The method of claim 9, further comprising receiving electronic inputfrom a user to customize the predetermined density threshold level forinitiating the zoom window.
 11. The method of claim 9, wherein thedegree of magnification within the zoom window is determined by thedensity and size of selected interface elements in the user interface.12. The method of claim 9, further comprising displaying a focus regionaround the user's gaze location on the user interface or zoom window.13. The method of claim 12, wherein said focus region is configured tomatch the size of one or more interface elements within the userinterface or zoom window.
 14. The method of claim 12, further comprisingdisplaying a visual feedback element at a designated location within thefocus region while a user's gaze point remains anywhere within the focusregion.
 15. The method of claim 12, wherein the timing of said step ofautomatically initiating the display of a zoom window is based in parton the length of time a user's gaze location remains within said focusregion.
 16. The method of claim 9, further comprising implementing anelectronic reaction associated with a given interface element providedin the zoom window after detection of a predetermined action relative tothe given interface element.
 17. The method of claim 16, wherein saidpredetermined action comprises one or more of blinking, fixating of usergaze for a predetermined dwell time, actuating a button or switch, andspeaking a command.
 18. The method of claim 9, further comprising a stepof initiating further magnification of said user interface within saidzoom window.
 19. A computer readable medium comprising computer readableand executable instructions configured to control a processing device toimplement the method of claim
 9. 20. An eye gaze detection system,comprising: a display device configured to display a user interface to auser, said user interface comprising one or more interface elements; atleast one image capture device for detecting a user's gaze locationrelative to said display device; and a processing device configured todetect user interface elements within the user interface relative to theuser's gaze location and dynamically determine whether to initiate thedisplay of one or more visual feedback elements on the user interface ator near the user's gaze location, wherein such dynamic determination ismade based on whether the user's gaze location is at or within apredetermined distance of an interface element.
 21. The eye gazedetection system of claim 20, wherein said processing device is furtherconfigured to snap the one or more visual feedback elements on the userinterface to one or more interface elements that are determined to beclosest to the user's gaze location.
 22. The eye gaze detection systemof claim 20, wherein said processing device is further configured toinitiate an electronic action associated with the interface elementwithin the user interface that is at or closest to the user's gazelocation.
 23. The eye gaze detection system of claim 20, wherein saidone or more visual feedback elements comprise a pointer placed on theuser's gaze location.
 24. The eye gaze detection system of claim 20,wherein said one or more visual feedback elements comprise an overlyingimage having its center of origin substantially corresponding to theuser's gaze location.
 25. The eye gaze detection system of claim 20,wherein said one or more visual feedback elements comprise one or morehighlighted regions corresponding to one or more interface elements neara user's gaze location.
 26. The eye gaze detection system of claim 20,wherein said processing device is configured to detect user interfaceelements by determining whether any interface elements present data forinitiating commands to an operating system running on said processingdevice.
 27. The eye gaze detection system of claim 20, wherein saidprocessing device is configured to detect user interface elements byapplying pattern recognition techniques to identify user interfaceelements having one or more predefined shapes.
 28. The eye gazedetection system of claim 20, wherein said processing device is furtherconfigured to use detected interface elements as input to possiblescanning choices for selection by a user employing a scanning accessmethod for the eye gaze detection system.
 29. The eye gaze detectionsystem of claim 20, wherein the dynamic determination made by saidprocessing device regarding whether to initiate the display of one ormore visual feedback elements on the user interface is further dependenton the structure of eye movements detected by said at least one imagecapture device.
 30. The eye gaze detection system of claim 20, whereinthe dynamic determination made by said processing device regardingwhether to initiate the display of one or more visual feedback elementson the user interface is further dependent on the type of actionassociated with one or more interface elements near the user's gazelocation, and wherein different feedback elements can be displayed fordifferent types of actions.
 31. A method for displaying and updatingvisual feedback elements in an eye tracking system, said methodcomprising: electronically detecting a user's gaze locationcorresponding to where a user is looking relative to a user interface;electronically determining whether any reactable interface elements arepointed at or within a predetermined distance from the user's gazelocation; and electronically displaying one or more visual feedbackelements on the user interface at or near the user's gaze location ifone or more reactable interface elements are found at or within apredetermined distance from the user's gaze location.
 32. The method ofclaim 31, further comprising snapping the one or more visual feedbackelements on the user interface to one or more reactable interfaceelements that are determined to be closest to the user's gaze location.33. The method of claim 31, further comprising electronically initiatingan electronic action associated with the reactable interface elementwithin the user interface that is at or closest to the user's gazelocation.
 34. The method of claim 31, wherein said one or more userinterface elements comprise a pointer placed on the user's gazelocation, an overlying image having its center of origin substantiallycorresponding to the user's gaze location, or one or more highlightedregions corresponding to one or more interface elements near a user'sgaze location.
 35. The method of claim 31, wherein electronicallydetermining whether any interface elements are pointed at or within apredetermined distance from the user's gaze location comprisesdetermining whether any interface elements present data for initiatingcommands to an operating system running on said processing device. 36.The method of claim 31, wherein electronically determining whether anyinterface elements are pointed at or within a predetermined distancefrom the user's gaze location comprises applying pattern recognitiontechniques to identify user interface elements having one or morepredefined shapes.
 37. The method of claim 31, further comprisingelectronically displaying a focus region around the user's gazelocation, wherein said focus region is configured to match the size of areactable interface element within the user interface that is at orclosest to the user's gaze location.
 38. The method of claim 31, furthercomprising a step of electronically implementing an additional actionrelative to a reactable interface element within the user interface thatis at or closest to the user's gaze location.
 39. The method of claim31, further comprising using reactable interface elements as input topossible scanning choices for selection by a user employing a scanningaccess method for the eye tracking system.
 40. The method of claim 31,wherein electronically displaying a visual feedback element on the userinterface at the user's gaze location occurs based on additionalanalysis of the structure of eye movements determined by detecting theuser's gaze location.
 41. A computer readable medium comprising computerreadable and executable instructions configured to control a processingdevice to implement the method of claim
 31. 42-105. (canceled)